define(function(require){
	var $=require("jq.js");
	var dialog_css=require("/pinzhiV2.0/css/pz-dialog.css");
	var Dialog=require("pz_use_dialog.js");
	//注册页面验证
	function Validate(validateArea){
		var _this_=this;
		//保存表单
		this.form=validateArea;
		//保存用户名
		this.userNameInput=$("#user-name",validateArea);
		//保存设置密码
		this.passWordInput=$("#user-password",validateArea);
		//保存确认密码
		this.surePassWordInput=$("#sure-password",validateArea);
		//保存手机
		this.phoneInput=$("#user-phone-number",validateArea);
		//保存推荐人
		this.userReferrer=$("#user-referrer",validateArea);
		//保存同意按钮
		this.checkBoxBtn=$("#checkBox",validateArea);
		//保存密码强度
		this.strongAndWeak=$(".strong-and-weak",validateArea);
		//保存提交按钮
		this.submitBtn=$("#submitBtn",validateArea);
		
		this.validateCode=$("#validateCode",validateArea);
		//验证码图片
		this.changePic=$("#changePic",validateArea);
		//获取所有需要验证的控件
		this.allValidateInput=$("input[data-isInputOk]");
		//用户名验证
		this.userNameInput.keyup(function(){
			var _this=this;
			var userStr=encodeURIComponent(_this.value.Trim());
			//document.title=(encodeURIComponent(userStr))
			//return;
			window.clearTimeout(this.timer);
			this.timer=window.setTimeout(function(){
				if(_this.value.Trim().isUserName()){
					_this_.goValidate(true,_this,_this.value,"用户名正确！");
					//验证用户是否存在
					$.get("/register_userName.do?rand="+Math.random()+"&userName="+userStr,function(ret){
						if(Number(ret)==0){
							_this_.goValidate(false,_this,_this.value,"用户名已存在！");
						}else{
							_this_.goValidate(true,_this,_this.value,"用户名可以使用！");
						};
					});
				}else if(_this.value.Trim().isCheckQuote()){
					_this_.goValidate(false,_this,_this.value,"用户名存在非法字符！");
				}else{
					_this_.goValidate(false,_this,_this.value,"用户名长度只能在4-20个字符！");
				};
			},200);

		}).blur(function(){
			//验证用户名不能为纯数字
			var v = this.value;
			if(!/[^0-9]/g.test(v)){
				_this_.goValidate(false,this,v,"用户名不能为纯数字！");
			};
		}).focus().val("");/*.blur(function(){
			var _this=this;
				if(this.value.Trim().isUserName()){
					_this_.goValidate(true,this,this.value,"用户名正确！");
					//验证用户是否存在
					$.get("/register_userName.do?rand="+Math.random()+"&userName="+_this.value.Trim(),function(ret){
						if(Number(ret)==0){
							_this_.goValidate(false,_this,_this.value,"用户名已存在！");
						}else{
							_this_.goValidate(true,_this,_this.value,"用户名可以使用！");
						};
					})
				}else if(_this.value.Trim().isCheckQuote()){
					_this_.goValidate(false,_this,_this.value,"用户名存在非法字符！");
				}else{
					_this_.goValidate(false,this,this.value,"用户名长度只能在4-20个字符！");
				};
		
		}).focus().val("");*/
		
		//输入密码
		this.passWordInput.keypress(function(e){
			var inputStrNum=e.which;
			var teshu=[13,8,0];
			var teshuPanduan=false;
			for(var i=0;i<teshu.length;i++){
				if(inputStrNum==teshu[i]){
					teshuPanduan=true;
					break;
				}
			}
			if(!teshuPanduan){
				if(!(inputStrNum>96&&inputStrNum<123||inputStrNum>64&&inputStrNum<91||inputStrNum>47&&inputStrNum<58)){
					return e.preventDefault();
				}
			}
			var $this$=this;
			window.clearTimeout(this.timer);
			this.timer=window.setTimeout(function(){
				if($this$.value.Trim().isPassword()){
					_this_.goValidate(true,$this$,$this$.value,"密码输入正确！");
					//如果正确,启动判断密码强度
					_this_.gotoEvaluatePassword($this$.value,$this$);
				}else{
					_this_.goValidate(false,$this$,$this$.value,"密码由6到16位字母和数字组成！");
					_this_.strongAndWeak.children().removeClass("on");
				};
			},500);
		}).blur(function(){
				if(this.value.Trim().isPassword()){
					_this_.goValidate(true,this,this.value,"密码输入正确！");
					//如果正确,启动判断密码强度
					_this_.gotoEvaluatePassword(this.value,this);
				}else{
					_this_.goValidate(false,this,this.value,"密码由6到16位字母和数字组成！");
					_this_.strongAndWeak.children().removeClass("on");
				};
		}).val("");
		//重复密码
		this.surePassWordInput.blur(function(){
			var pass=_this_.passWordInput.val();
			if(pass!=""&&_this_.passWordInput.attr("data-isInputOk")=="yes"){
				if(pass.Trim()==this.value.Trim()){
					$(this).parent().parent().parent().find("p").show().addClass("ver-ok");
					$(this).parent().parent().removeClass("area-left-error");
					$(this).parent().parent().parent().find(".tips-text").text("输入一致！");
					$(this).attr("data-isInputOk","yes");
				}else{
					$(this).parent().parent().parent().find("p").show().removeClass("ver-ok");
					$(this).parent().parent().addClass("area-left-error");
					$(this).parent().parent().parent().find(".tips-text").text("两次输入不一致!");
					$(this).attr("data-isInputOk","no");
				};
			}else{
					$(this).parent().parent().parent().find("p").show().removeClass("ver-ok");
					$(this).parent().parent().addClass("area-left-error");
					$(this).parent().parent().parent().find(".tips-text").text("没有输入密码!");
					$(this).attr("data-isInputOk","no");
			};
		}).val("");
		
		//输入手机
		this.phoneInput.blur(function(){
			if(this.value.Trim().isMobile()){
				_this_.goValidate(true,this,this.value,"输入正确！");
			}else{
				_this_.goValidate(false,this,this.value,"手机格式不准确(有11位数字组成)！");
			}
		}).val("");
		//输入验证码
		this.validateCode.blur(function(){
			var _codeInput = $(this);
			var validateCode = $("#validateCode").get(0);
			var valide = validateCode.value;
			$(this).data("state","loading");
			$.post("/loginCode.do",{validateCode:valide},function(ret){
				if(ret.state =="success"){
					_this_.goValidate(true,validateCode,validateCode.value,"输入正确！");
				}else{
					_this_.goValidate(false,validateCode,validateCode.value,"验证码输入不正确！");
				}
				_codeInput.data("state","complete");
			},"json");
		}).val("").focus(function(){
			$(this).data("state","noVali");
		});
		
		//切换验证码click
		this.changePic.click(function(){
			$("img",this).attr("src","/validateCode?random="+Math.random());
			$(".check").find(".area-right").find("p").css("display","none");
		});
		//提交按钮
		this.submitBtn.click(function(e){
			if($("#validateCode").data("state")=="noVali"){
				$("#validateCode").blur();
				window.setTimeout(function(){
					_this_.submitBtn.click();
				},500);
				return false;
			};
			if($("#validateCode").data("state")=="loading"){
				window.setTimeout(function(){
					_this_.submitBtn.click();
				},500);
				return false;
			};
			
			var loop=0;
			e.preventDefault();
			_this_.allValidateInput.each(function(){
				if($(this).attr("data-isInputOk")=="yes"){
						loop++;
				}else{
					$(this).blur();
					return false;
				};
			});
			if(loop==5&&_this_.checkBoxBtn.get(0).checked){
				
				var sendValue=_this_.getRegistValue();
				
				$.post("/registerAdd.do?rand="+Math.random(),sendValue,function(ret){
						//ret.state  url
						//var fun=arguments.callee;
						_this_.sendTo(ret);
				},"json");
	
			}else if(loop<5){	
				var tips=new Dialog({
					  type:"tips",
					  text:"没有填写完整！",
					  delay:3,			//提示框延时几秒，不提供默认为3秒关闭
					  mask:0.3
					  });	
				$("img",changePic).attr("src","/validateCode?random="+Math.random());
				
			}else{
				var tips=new Dialog({
					  type:"confirm",
					  height:107,
					  tipsText:"是否同意品质网注册协议？",
					  buttonSureText:"同意注册", 
					  buttonCancelText:"不同意", 
					  callBack:function(){         //回调函数
					  	_this_.checkBoxBtn.prop("checked",true);
						_this_.submitBtn.click();
					  },
					  mask:0.3,
					  isDrag:true                //开起拖动
					});
			};
			return false;
		});
	};
	Validate.prototype={
		sendTo:function(ret){
			var $this=this;
				//ret.state  url
				//var fun=arguments.callee;
				if(ret.state=="error"){
					
						var tips=new Dialog({
							  type:"alert",
							  height:107,
							  tipsText:ret.msg,
							  buttonSureText:"知道了", 
							  isDrag:true                //开起拖动
							  });
	
				}else if(ret.state=="success"){
						var toUrl = $("#validate-area").attr("data-toUrl");
						if(toUrl!=""){
							window.location=toUrl;
						} else
						window.location=ret.url;
				
				}else if(ret.state=="rec"){
						var tips=new Dialog({
							  type:"confirm",
							  height:107,
							  tipsText:ret.msg||"推荐人不存在,是否继续注册",
							  buttonSureText:"继续",
							  buttonCancelText:"不同意", 
							  callBack:function(){
								  var v=$this.getRegistValue();
								  	  delete v.rec;
							  		$.get("/registerAdd.do",v,function(result){
							  			$this.sendTo(result)
							  		},"json");
							  },
							  isDrag:true                //开起拖动
							  });	
					
				}else if(ret.state=="noPrivate"){
					var tips=new Dialog({
						  type:"confirm",
						  height:107,
						  tipsText:ret.msg||"推荐人存在,但是没特限,是否继续注册",
						  buttonSureText:"继续",
						  buttonCancelText:"不同意", 
						  callBack:function(){
							  var v=$this.getRegistValue();
							  	  v.goon = "yes";
						  		$.get("/registerAdd.do",v,function(result){
						  			$this.sendTo(result);
						  		},"json");
						  },
						  isDrag:true                //开起拖动
						  });	
				};
				
		},
		
		
		getRegistValue:function(){
			return {
				//保存用户名
				userName:this.userNameInput.val().Trim(),/*encodeURIComponent(this.userNameInput.val())*/
				//保存设置密码
				password:this.passWordInput.val(),
				//保存手机
				phone:this.phoneInput.val(),
				//保存验证码
				validateCode:this.validateCode.val(),
				//保存推荐人
				rec:this.userReferrer.val()
			}

		},
		gotoEvaluatePassword:function(value,thisObj){
			var level=this.evaluatePassword(value);
			var text="";
			this.strongAndWeak.children().removeClass("on").slice(0,level).addClass("on");
			if(level<2){
				text="弱";
			}else if(level==2){
				text="一般";
			}else{
				text="强";
			};
			//设置强度标识
			$(thisObj).parent().parent().parent().find(".tips-text").html("<strong>"+text+"</strong>密码输入正确！")
		},
		//验证密码强度
		evaluatePassword:function(value){
			if (value == ""){  
				return 0;  
			}else if (value.length < 6)  {  
				return 1;  
			}else{  
				return value.match(/[a-z](?![^a-z]*[a-z])|[A-Z](?![^A-Z]*[A-Z])|\d(?![^\d]*\d)|[^a-zA-Z\d](?![a-zA-Z\d]*[^a-zA-Z\d])/g).length;  
			}; 
		},
		//开始验证
		goValidate:function(isOk,thisObj,value,tipsText){
			if(isOk){
				$(thisObj).parent().parent().parent().find("p").show().addClass("ver-ok");
				$(thisObj).parent().parent().removeClass("area-left-error");
				$(thisObj).parent().parent().parent().find(".tips-text").text(tipsText);
				$(thisObj).attr("data-isInputOk","yes");
			}else{
				$(thisObj).parent().parent().parent().find("p").show().removeClass("ver-ok");
				$(thisObj).parent().parent().addClass("area-left-error");
				$(thisObj).parent().parent().parent().find(".tips-text").text(tipsText);
				$(thisObj).attr("data-isInputOk","no");
			};
		}
	
	};
	//传入验证区域
	var validate=new Validate($("#validate-area"));
});






















